﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Упр)
	///</summary>
	[DataContract]
	public enum СпособыПланирования
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///Циклическое планирование
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"10268183-9071-45f9-a433-0b16996f3119\", \"Представление\":\"Циклический\"}")]
		Циклический = 0,
	///<summary>
	///Скользящее планирование
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"8b5d3dea-a9a8-496e-8ed0-db1379338e25\", \"Представление\":\"Скользящий\"}")]
		Скользящий = 1,
	///<summary>
	///Планирование на фиксированный интервал
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"00a63b32-af41-42c5-9f85-acf0d025c8bd\", \"Представление\":\"НаИнтервал\"}")]
		НаИнтервал = 2,//На интервал
	}
	public static partial class СпособыПланирования_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///Циклическое планирование
		///</summary>
		public static readonly Guid Циклический = new Guid("160b33a4-6f99-1931-45f9-907110268183");
		///<summary>
		///Скользящее планирование
		///</summary>
		public static readonly Guid Скользящий = new Guid("13dbd08e-3379-258e-496e-a9a88b5d3dea");
		///<summary>
		///Планирование на фиксированный интервал
		///</summary>
		public static readonly Guid НаИнтервал = new Guid("f0ac859f-25d0-bdc8-42c5-af4100a63b32");//На интервал
		public static СпособыПланирования Получить(this СпособыПланирования Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыПланирования Получить(this СпособыПланирования Значение, Guid Ссылка)
		{
			if(Ссылка == Циклический)
			{
				return СпособыПланирования.Циклический;
			}
			else if(Ссылка == Скользящий)
			{
				return СпособыПланирования.Скользящий;
			}
			else if(Ссылка == НаИнтервал)
			{
				return СпособыПланирования.НаИнтервал;
			}
			return СпособыПланирования.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыПланирования Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыПланирования Значение)
		{
			switch (Значение)
			{
				case СпособыПланирования.Циклический: return Циклический;
				case СпособыПланирования.Скользящий: return Скользящий;
				case СпособыПланирования.НаИнтервал: return НаИнтервал;
			}
			return Guid.Empty;
		}
	}
}